package br.com.bankai.koby.service.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.bankai.koby.repository.entity.Usuario;

/**
 * 
 * @author Leonardo
 *
 */
@Service
public class PasswordService {

	private static final Logger LOGGER = LoggerFactory.getLogger(PasswordService.class);

	@Autowired
	private EmailService emailService;

	public void generateAndSend(Usuario usuario) {
		LOGGER.debug("Gerando senha para enviar por email para {}", usuario.getEmail().getValor());
		String password = Generator.generateUserPassword();
		LOGGER.debug("Senha gerada: {}", password);
		String encryptedPassword = EncryptHelper.encrypt(password);
		LOGGER.debug("Senha criptografada: {}", encryptedPassword);
		usuario.setSenhaAcesso(encryptedPassword);

		emailService.sendUsuarioPassword(usuario, password);
	}

	public String generate(Usuario usuario) {
		LOGGER.debug("Gerando senha para para usuario");
		String password = Generator.generateUserPassword();
		LOGGER.debug("Senha gerada: {}", password);
		String encryptedPassword = EncryptHelper.encrypt(password);
		LOGGER.debug("Senha criptografada: {}", encryptedPassword);
		usuario.setSenhaAcesso(encryptedPassword);

		return password;
	}
}